"""
爬虫思路：
（一）数据来源分析
    1、确认需求，爬什么？
        百度热榜（排名、标题、详情描述、图片）

    2、找URL，去哪儿爬？
        我要找的东西，他是静态（在源代码里）还是动态（ajax）的。
        URL = "https://top.baidu.com:443/board?tab=realtime"
        静态的，获取源代码就行了

        url的构成  协议://主机IP:端口号/路径?请求参数


（二）爬虫代码实现
    1、发送请求
    2、获取数据
    3、解析数据
    4、保存数据
"""
# 爬虫通用框架（函数）
import requests
import re


# 发送请求获取数据
def get_html(url, headers):
    try:
        # 发送get请求
        resp = requests.get(url=url, headers=headers)
        # 主动抛出异常
        resp.raise_for_status()
        # 指定编码
        resp.encoding = 'utf-8'
        # 返回请求到的数据
        #(resp.text 获取响应中的文本resp.json()获取响应中的json类型数据resp.content获取响应中的二进制数据)
        return resp.text
    except:
        return None


def parse_html(html):
    json_str = re.findall(r'<!--s-data:(.*?)-->', html, re.S)[0]
    print(json_str)



def save_data():
    pass


def main():
    url = "https://top.baidu.com:443/board?tab=realtime"
    # 构造请求头
    headers = {
        # user-agent
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.68',
    }
    html = get_html(url, headers)
    parse_html(html)


if __name__ == '__main__':
    main()
